Re: [SQL] date_arithmetic revisited - Mailing list pgsql-sql

From Herouth Maoz
Subject Re: [SQL] date_arithmetic revisited
Date
Msg-id l03130307b3ca2a5eb72f@[147.233.159.109]
Whole thread Raw
In response to date_arithmetic revisited  (Thomas Good <tomg@admin.nrnet.org>)
Responses Re: [SQL] date_arithmetic revisited
List pgsql-sql
At 17:15 +0300 on 30/07/1999, Thomas Good wrote:


> Is there a way/function that allows me to do simple date arithmetic,
> ala, `SELECT $enddate - startdate;' ?

Sure. Nike.

I mean, just do it. What you get from it depends, of course, on the type of
the fields. If they are of type date, you get the round number of days
between them (the result is of type int4):

testing=> select d_start, d_end, d_end - d_start from test2;  d_start|     d_end|?column?
----------+----------+--------
01-15-1969|08-01-1999|   11155
07-14-1999|07-18-1999|       4
04-13-1998|03-12-1998|     -32
12-01-1999|12-01-1999|       0
(4 rows)

If they are of type datetime, you get a timespan describing the difference:

testing=> select t_end - t_start as result from test1;
result
----------------------
@ 11154 days 23 hours
@ 4 days
@ 31 days 23 hours ago
@ 0
(4 rows)

If this doesn't suit you, you can take the date_part( 'day', ... ) from the
above operation, but it truncates rather than rounds. The result is float8,
BTW.

Herouth

--
Herouth Maoz, Internet developer.
Open University of Israel - Telem project
http://telem.openu.ac.il/~herutma




pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: [SQL] MVCC and concurrent clients
Next
From: Martin Jackson
Date:
Subject: Some questions about inheritance